export interface User {
  id: number;
  username: string;
  email: string;
  points: number;
  studyDuration: number;
  coursesCompleted: number;
  createdAt: string;
}

export interface Course {
  id: number;
  title: string;
  description: string;
  price: number;
  category: string;
  duration: number;
  rating: number;
  viewCount: number;
  thumbnail?: string;
  createdAt: string;
}

export interface CartItem {
  id: number;
  courseId: number;
  course: Course;
  quantity: number;
}

export interface LearningProgress {
  id: number;
  userId: number;
  courseId: number;
  progress: number;
  studyDuration: number;
  lastStudiedAt: string;
}

export interface Notification {
  id: number;
  title: string;
  content: string;
  type: 'info' | 'warning' | 'success';
  isRead: boolean;
  createdAt: string;
}

export interface LeaderboardEntry {
  userId: number;
  username: string;
  value: number;
  rank: number;
}

export interface ApiResponse<T> {
  success: boolean;
  data: T;
  message?: string;
}